function x_next = plant_update(x, u, P_load, BattParams, FCParams, SimParams)
% =========================================================================
% plant_update.m - "真实"被控对象的非线性状态更新模型
% =========================================================================
% 输入参数与prediction_model类似，但直接传入参数结构体

    dt = SimParams.Ts;
    
    % 提取状态和控制量
    SOC_k        = x(1);
    P_fc_k       = x(2);
    alpha_decay_k = x(3);
    beta_k       = u(1);
    
    % 功率分配
    P_bat = P_load - beta_k * P_load;
    P_fc_cmd = beta_k * P_load;

    % SOC(k+1) 计算 (与预测模型一致)
    I_bat = P_bat / interp1(BattParams.OCV_SOC_map(1,:), BattParams.OCV_SOC_map(2,:), SOC_k, 'linear', 'extrap');
    soc_next = SOC_k - (I_bat * dt) / BattParams.Capacity_As;

    % P_fc(k+1) 计算 (与预测模型一致)
    pfc_next = P_fc_cmd;
    P_bat = P_load-pfc_next
    % alpha_decay(k+1) 计算 (与预测模型一致)
    delta_pfc = pfc_next - P_fc_k;
    delta_alpha = (FCParams.C1 * P_fc_k^2 + FCParams.C2 * delta_pfc^2) * dt;
    alpha_next = alpha_decay_k + delta_alpha;

    x_next = [soc_next; pfc_next; alpha_next];
end